--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / tests / frontend / ConversationViewer.outboundPropagationStatus.test.js
Displaying Raw • Download
tests/frontend/ConversationViewer.outboundPropagationStatus.test.js e5756d7ab065475a18acdcafc008a767fcff87e0 (e5756d7a) Text, 12.37 KB
Tff7b72import Tb4b4b4{ Te6edf3mount Tb4b4b4} Tff7b72from Ta5d6ff"@vue/test-utils"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expectTb4b4b4, Te6edf3viTb4b4b4, Te6edf3beforeEachTb4b4b4, Te6edf3afterEach Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Te6edf3ConversationViewer Tff7b72from Ta5d6ff"@/components/messages/ConversationViewer.vue"Tb4b4b4;
Tff7b72import Te6edf3WebSocketConnection Tff7b72from Ta5d6ff"@/js/WebSocketConnection"Tb4b4b4;
Tff7b72import Te6edf3GlobalState Tff7b72from Ta5d6ff"@/js/GlobalState"Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"ConversationViewer outbound propagation status"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72let Te6edf3axiosMockTb4b4b4;
Te6edf3beforeEachTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3GlobalStateTb4b4b4.Te6edf3configTb4b4b4.Te6edf3theme Tff7b72= Ta5d6ff"light"Tb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3configTb4b4b4.Te6edf3message_outbound_bubble_color Tff7b72= Ta5d6ff"#4f46e5"Tb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3configTb4b4b4.Te6edf3message_waiting_bubble_color Tff7b72= Ta5d6ff"#e5e7eb"Tb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3configTb4b4b4.Te6edf3warn_on_stranger_links Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3detailedOutboundSendStatus Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3outboundTransferProgressEnabled Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3WebSocketConnectionTb4b4b4.Te6edf3connectTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3axiosMock Tff7b72= Tb4b4b4{
Te6edf3getTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3mockImplementationTb4b4b4(Tb4b4b4(Te6edf3urlTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3urlTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"/path"Tb4b4b4)Tb4b4b4) Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{ Te6edf3pathTff7b72: Tb4b4b4[Tb4b4b4] Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3urlTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"/stamp-info"Tb4b4b4)Tb4b4b4) Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{ Te6edf3lxmf_stamp_infoTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3urlTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"/signal-metrics"Tb4b4b4)Tb4b4b4) Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{ Te6edf3signal_metricsTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3postTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3mockResolvedValueTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tffa657windowTb4b4b4.Te6edf3api Tff7b72= Te6edf3axiosMockTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3afterEachTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3GlobalStateTb4b4b4.Te6edf3detailedOutboundSendStatus Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3outboundTransferProgressEnabled Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72delete Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4;
Te6edf3WebSocketConnectionTb4b4b4.Te6edf3destroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3mountViewer Tff7b72= Tb4b4b4(Te6edf3extraMocks Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4=>
Te6edf3mountTb4b4b4(Te6edf3ConversationViewerTb4b4b4, Tb4b4b4{
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3selectedPeerTff7b72: Tb4b4b4{ Te6edf3destination_hashTff7b72: Ta5d6ff"peerhash111111111111111111111111"Tb4b4b4, Te6edf3display_nameTff7b72: Ta5d6ff"Peer" Tb4b4b4}Tb4b4b4,
Te6edf3myLxmfAddressHashTff7b72: Ta5d6ff"myhash11111111111111111111111111"Tb4b4b4,
Te6edf3conversationsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tffa657globalTff7b72: Tb4b4b4{
Te6edf3directivesTff7b72: Tb4b4b4{ Ta5d6ff"click-outside"Tff7b72: Tb4b4b4{ Te6edf3mountedTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3unmountedTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4,
Te6edf3mocksTff7b72: Tb4b4b4{
Te6edf3$tTff7b72: Tb4b4b4(Te6edf3keyTb4b4b4, Te6edf3paramsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3params Tff7b72&& Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3paramsTb4b4b4)Tb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Tffd700${Te6edf3keyTffd700}Ta5d6ff:Tffd700${Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3paramsTb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3keyTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3$routeTff7b72: Tb4b4b4{ Te6edf3metaTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4,
Te6edf3$routerTff7b72: Tb4b4b4{ Te6edf3pushTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4...Te6edf3extraMocksTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3stubsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTff7b72: Tff7b72trueTb4b4b4,
Te6edf3AddImageButtonTff7b72: Tff7b72trueTb4b4b4,
Te6edf3AddAudioButtonTff7b72: Tff7b72trueTb4b4b4,
Te6edf3SendMessageButtonTff7b72: Tff7b72trueTb4b4b4,
Te6edf3ConversationDropDownMenuTff7b72: Tff7b72trueTb4b4b4,
Te6edf3PaperMessageModalTff7b72: Tff7b72trueTb4b4b4,
Te6edf3AudioWaveformPlayerTff7b72: Tff7b72trueTb4b4b4,
Te6edf3LxmfUserIconTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundSentStatusTitle uses propagation copy when method is propagated"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSentStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_on_propagation_node"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSentStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_sent_network"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSentStatusTitleTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundBubbleStatusTitle uses delivered and method-aware copy"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_delivered"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_delivered_propagated"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_on_propagation_node"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusTitleTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"paper"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"messages.outbound_sent_network"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusTitleTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundBubbleStatusIconName maps method and state to icons"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"check"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"check-all"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"opportunistic"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"check"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"opportunistic"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"check-all"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"email-outline"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"email-check-outline"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"paper"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"sent" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"note-outline"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"paper"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Ta5d6ff"note-check-outline"
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tb4b4b4{ Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"unknown" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"check"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusIconNameTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"check"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundTransferProgressPercent and label track resource transfer"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferProgressPercentTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff42.5 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingProgressLabelTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff42.5 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"43%"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferProgressPercentTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferProgressPercentTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff50 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(T79c0ff50Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferProgressPercentTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeNullTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferProgressPercentTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4, Te6edf3_pendingPathfindingTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeNullTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingProgressLabelTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeNullTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"showOutboundTransferProgress respects the settings toggle"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3message Tff7b72= Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4, Te6edf3progressTff7b72: T79c0ff25 Tb4b4b4}Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3showOutboundTransferProgressTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3outboundTransferProgressEnabled Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3showOutboundTransferProgressTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundTransferStatsLabel includes speed, hops, and elapsed time"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3createdAt Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff65000Tb4b4b4)Tb4b4b4.Te6edf3toISOStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3sendStatusUiMs Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3stats Tff7b72= Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundTransferStatsLabelTb4b4b4(
Tb4b4b4{
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff50Tb4b4b4,
Te6edf3contentTff7b72: Ta5d6ff"hello"Tb4b4b4,
Te6edf3path_hops_at_sendTff7b72: T79c0ff3Tb4b4b4,
Te6edf3created_atTff7b72: Te6edf3createdAtTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3created_atTff7b72: Te6edf3createdAtTb4b4b4,
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3statsTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"B/s"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3statsTb4b4b4)Tb4b4b4.Te6edf3notTb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"bps"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3statsTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"messages.transfer_progress_hops"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3statsTb4b4b4)Tb4b4b4.Te6edf3toMatchTb4b4b4(Ta5d6ff/1:0[45]/Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundSendingStatusTooltip uses propagation pending strings for propagated method"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3withProgress Tff7b72= Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingStatusTooltipTb4b4b4(Tb4b4b4{
Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff40Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3withProgressTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"messages.outbound_pending_propagation_with_progress"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3withProgressTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'"progress":"40"'Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3pending Tff7b72= Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingStatusTooltipTb4b4b4(Tb4b4b4{
Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff0Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3pendingTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"messages.outbound_pending_propagation"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingStatusTooltipTb4b4b4(Tb4b4b4{
Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"messages.outbound_pending_propagation"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundBubbleStatusHoverTitle uses propagation pending for outbound state"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusHoverTitleTb4b4b4(Tb4b4b4{
Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"messages.outbound_pending_propagation"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundSendingStatusTooltip uses solving stamps copy when solving_stamps is set"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundSendingStatusTooltipTb4b4b4(Tb4b4b4{
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Te6edf3solving_stampsTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"messages.outbound_solving_stamps"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"outboundBubbleStatusHoverTitle uses solving stamps short copy when solving_stamps is set"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3outboundBubbleStatusHoverTitleTb4b4b4(Tb4b4b4{
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Te6edf3solving_stampsTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"messages.outbound_solving_stamps_short"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"onLxmfMessageUpdated preserves solving_stamps when websocket omits the field"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3hash Tff7b72= Ta5d6ff"abc123def456789012345678901234ab"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItems Tff7b72= Tb4b4b4[
Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"lxmf_message"Tb4b4b4,
Te6edf3is_outboundTff7b72: Tff7b72trueTb4b4b4,
Te6edf3lxmf_messageTff7b72: Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3destination_hashTff7b72: Ta5d6ff"peerhash111111111111111111111111"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Te6edf3solving_stampsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3contentTff7b72: Ta5d6ff"hi"Tb4b4b4,
Te6edf3fieldsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3onLxmfMessageUpdatedTb4b4b4(Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3lxmf_messageTb4b4b4.Te6edf3solving_stampsTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"onLxmfMessageUpdated clears solving_stamps when websocket sets it false"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3hash Tff7b72= Ta5d6ff"abc123def456789012345678901234ab"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItems Tff7b72= Tb4b4b4[
Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"lxmf_message"Tb4b4b4,
Te6edf3is_outboundTff7b72: Tff7b72trueTb4b4b4,
Te6edf3lxmf_messageTff7b72: Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3destination_hashTff7b72: Ta5d6ff"peerhash111111111111111111111111"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"outbound"Tb4b4b4,
Te6edf3solving_stampsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3contentTff7b72: Ta5d6ff"hi"Tb4b4b4,
Te6edf3fieldsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3onLxmfMessageUpdatedTb4b4b4(Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Te6edf3solving_stampsTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3lxmf_messageTb4b4b4.Te6edf3solving_stampsTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"onLxmfMessageUpdated preserves merged method when websocket sends propagated handoff"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountViewerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3hash Tff7b72= Ta5d6ff"abc123def456789012345678901234ab"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItems Tff7b72= Tb4b4b4[
Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"lxmf_message"Tb4b4b4,
Te6edf3is_outboundTff7b72: Tff7b72trueTb4b4b4,
Te6edf3lxmf_messageTff7b72: Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3destination_hashTff7b72: Ta5d6ff"peerhash111111111111111111111111"Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sending"Tb4b4b4,
Te6edf3methodTff7b72: Ta5d6ff"direct"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff10Tb4b4b4,
Te6edf3contentTff7b72: Ta5d6ff"hi"Tb4b4b4,
Te6edf3fieldsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3onLxmfMessageUpdatedTb4b4b4(Tb4b4b4{
Te6edf3hashTb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"sent"Tb4b4b4,
Te6edf3methodTff7b72: Ta5d6ff"propagated"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff100Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3row Tff7b72= Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3chatItemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3lxmf_messageTb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3stateTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"sent"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3methodTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"propagated"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3progressTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(T79c0ff100Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────